package com.ehome.poct.core.api.dto.order;

import com.ehome.poct.base.api.constant.DeviceType;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * @auther: kuiba.peng
 * @date: 2022/11/21 21:00
 * @description:
 */
@Data
@EqualsAndHashCode
public class UnificationShareAccountDTO {

    /**
     * 分账ID 分账保存后返回
     */
    private Long shareAccountId;

    /**
     * 检测类型
     */
    private Integer stripTypeCode;

    /**
     * 检测名称
     */
    @NotBlank(message = "检查名称不能为空")
    private String stripName;

    /**
     * 总金额
     */
    @NotNull(message = "金额不能为空")
    @DecimalMin(message = "支付金额不能小于0", value = "0.00")
    private BigDecimal total;

    /**
     * 伊鸿成本
     */
    @NotNull(message = "伊鸿成本不能为空")
    @DecimalMin(message = "伊鸿成本不能小于0", value = "0.00")
    private BigDecimal yhCost;

    /**
     * 伊鸿的利润（实际效果就是成本，会有分润剩余的利润，直接归还给伊鸿。也可以直接将成本设计包含伊鸿利润）
     */
    @NotNull(message = "伊鸿的利润不能为空")
    @DecimalMin(message = "伊鸿的利润不能小于0", value = "0.00")
    private BigDecimal yhProfits;

    /**
     * 诊所的利润
     */
    @NotNull(message = "诊所分润不能为空")
    @DecimalMin(message = "诊所分润不能小于0", value = "0.00")
    private BigDecimal clinicProfits;

    /**
     * 业务员的利润
     */
    @NotNull(message = "业务员分润不能为空")
    @DecimalMin(message = "业务员分润不能小于0", value = "0.00")
    private BigDecimal salesProfits;

    /**
     * 地级市代理（地总）的利润
     */
    @NotNull(message = "地级市代理利润不能为空")
    @DecimalMin(message = "地级市代理利润不能小于0", value = "0.00")
    private BigDecimal cityAgentProfits;

    /**
     * 省级代理（省总）的利润
     */
    @NotNull(message = "省级代理利润不能为空")
    @DecimalMin(message = "省级代理利润不能小于0", value = "0.00")
    private BigDecimal provAgentProfits;

    /**
     * 分公司的利润（第一分公司）
     */
    @NotNull(message = "分公司的利润不能为空")
    @DecimalMin(message = "分公司的利润不能小于0", value = "0.00")
    private BigDecimal companyAgentProfits;

    /**
     * 诊所ID
     */
    @NotNull(message = "诊所ID不能为空")
    private Long clinicId;

    /**
     * 业务员ID
     */
    @NotNull(message = "业务员ID不能为空")
    private Long salesId;

    /**
     * 地级市I代理（地总）ID
     */
    @NotNull(message = "地总ID不能为空")
    private Long cityAgentId;

    /**
     * 省级代理（省总）ID
     */
    @NotNull(message = "省总ID不能为空")
    private Long provAgentId;

    /**
     * 第一分公司代理ID
     */
    @NotNull(message = "公司代理ID不能为空")
    private Long companyAgentId;

    /**
     * 关联的设备类型 1：金标仪；2：血常规
     */
    @Deprecated
    private DeviceType clinicType;

    private Integer deviceType;
}
